package com.youkeyi.ddy.cloud.basic.hr.employee.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

/**
 * <p>
 * 员工表
 * </p>
 *
 * @author xiawang.liu
 * @since 2024-06-11
 */
@TableName("tbl_employee")
public class TblEmployee extends Model<TblEmployee> {

    private static final long serialVersionUID = 1L;

    /**
     * Id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("primary_key")
    private String primaryKey;

    /**
     * 解决并发更新问题,每次更新需要用 uuid 做比较判断数据是否已变更
     */
    @TableField("uuid")
    private String uuid;

    /**
     * 旧的uuid,mybatis 更新时需要
     */
    @TableField("old_uuid")
    private String oldUuid;

    /**
     * 角色归属主体
     */
    @TableField("corp_key")
    private String corpKey;

    /**
     * 工号
     */
    @TableField("employee_code")
    private String employeeCode;

    /**
     * 姓名
     */
    @TableField("name")
    private String name;

    /**
     * 英文名
     */
    @TableField("former_name")
    private String formerName;

    /**
     * 身份证
     */
    @TableField("id_card")
    private String idCard;

    /**
     * 性别
     */
    @TableField("sex")
    private String sex;

    /**
     * 生日
     */
    @TableField("birthday")
    private Date birthday;

    /**
     * 生肖
     */
    @TableField("zodiac")
    private String zodiac;

    /**
     * 星座
     */
    @TableField("constellation")
    private String constellation;

    /**
     * 民族
     */
    @TableField("nationality")
    private String nationality;

    /**
     * 籍贯
     */
    @TableField("native_place")
    private String nativePlace;

    /**
     * 昵称
     */
    @TableField("nick_name")
    private String nickName;

    /**
     * 省份
     */
    @TableField("province")
    private String province;

    /**
     * 市区
     */
    @TableField("city")
    private String city;

    /**
     * 县区
     */
    @TableField("area")
    private String area;

    /**
     * 现居地
     */
    @TableField("current_residence")
    private String currentResidence;

    /**
     * 婚姻情况
     */
    @TableField("marital_status")
    private String maritalStatus;

    /**
     * 手机号
     */
    @TableField("phone")
    private String phone;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 政治面貌
     */
    @TableField("political_status")
    private String politicalStatus;

    /**
     * 员工照片key
     */
    @TableField("profile_picture_key")
    private String profilePictureKey;

    /**
     * 入团日期
     */
    @TableField("join_league_date")
    private Date joinLeagueDate;

    /**
     * 入党日期
     */
    @TableField("join_party_date")
    private Date joinPartyDate;

    /**
     * 最高学历
     */
    @TableField("highest_education")
    private String highestEducation;

    /**
     * 最高学位
     */
    @TableField("highest_degree")
    private String highestDegree;

    /**
     * 毕业时间
     */
    @TableField("start_work_date")
    private Date startWorkDate;

    /**
     * 紧急联系人
     */
    @TableField("emergency_contact")
    private String emergencyContact;

    /**
     * 紧急联系人电话
     */
    @TableField("emergency_contact_phone")
    private String emergencyContactPhone;

    /**
     * 其他联系方式
     */
    @TableField("other_contact")
    private String otherContact;

    /**
     * 系统账号
     */
    @TableField("account")
    private String account;

    /**
     * 部门
     */
    @TableField("department_key")
    private String departmentKey;

    /**
     * 岗位
     */
    @TableField("position_key")
    private String positionKey;

    /**
     * 办公地点
     */
    @TableField("office_location")
    private String officeLocation;

    /**
     * 办公电话
     */
    @TableField("office_phone")
    private String officePhone;

    /**
     * 员工状态: 1 待确认 2 待审核 3 审核中  4 试用  5 实习  6 正式  7 临时  8 试用延期  9 解聘 10 离职 11 退休 12 入职审核未通过 13 审核通过，待确认入职 
     */
    @TableField("employee_status")
    private String employeeStatus;

    /**
     * 工作性质
     */
    @TableField("job_nature")
    private String jobNature;

    /**
     * 入职日期
     */
    @TableField("entry_date")
    private Date entryDate;

    /**
     * 计划入职日期
     */
    @TableField("plan_entry_date")
    private Date planEntryDate;

    /**
     * 入职渠道
     */
    @TableField("entry_channel")
    private String entryChannel;
    /**
     * 入职推荐人
     */
    @TableField("entry_channel_recommended_by")
    private String entryChannelRecommendedBy;


    /**
     * 试用期限（月）
     */
    @TableField("probation_period")
    private Integer probationPeriod;

    /**
     * 转正日期
     */
    @TableField("regularization_date")
    private Date regularizationDate;

    /**
     * 附件
     */
    @TableField("attachment_key")
    private String attachmentKey;

    /**
     * 离职申请日期
     */
    @TableField("resignation_application_date")
    private Date resignationApplicationDate;

    /**
     * 实际离职日期
     */
    @TableField("resignation_actual_date")
    private Date resignationActualDate;

    /**
     * 薪资结算日期
     */
    @TableField("resignation_settlement_date")
    private Date resignationSettlementDate;

    /**
     * 离职原因
     */
    @TableField("resignation_reason")
    private String resignationReason;

    /**
     * 离职去向
     */
    @TableField("resignation_destination")
    private String resignationDestination;

    /**
     * 离职备注
     */
    @TableField("resignation_remark")
    private String resignationRemark;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 是否删除
     */
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 创建人
     */
    @TableField("create_user_key")
    private String createUserKey;

    /**
     * 创建人名称
     */
    @TableField("create_user_name")
    private String createUserName;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField("update_user_key")
    private String updateUserKey;

    /**
     * 更新人名称
     */
    @TableField("update_user_name")
    private String updateUserName;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getPrimaryKey() {
        return primaryKey;
    }

    public void setPrimaryKey(String primaryKey) {
        this.primaryKey = primaryKey;
    }
    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    public String getOldUuid() {
        return oldUuid;
    }

    public void setOldUuid(String oldUuid) {
        this.oldUuid = oldUuid;
    }
    public String getCorpKey() {
        return corpKey;
    }

    public void setCorpKey(String corpKey) {
        this.corpKey = corpKey;
    }
    public String getEmployeeCode() {
        return employeeCode;
    }

    public void setEmployeeCode(String employeeCode) {
        this.employeeCode = employeeCode;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getFormerName() {
        return formerName;
    }

    public void setFormerName(String formerName) {
        this.formerName = formerName;
    }
    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getZodiac() {
        return zodiac;
    }

    public void setZodiac(String zodiac) {
        this.zodiac = zodiac;
    }
    public String getConstellation() {
        return constellation;
    }

    public void setConstellation(String constellation) {
        this.constellation = constellation;
    }
    public String getNationality() {
        return nationality;
    }

    public void setNationality(String nationality) {
        this.nationality = nationality;
    }
    public String getNativePlace() {
        return nativePlace;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }
    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }
    public String getCurrentResidence() {
        return currentResidence;
    }

    public void setCurrentResidence(String currentResidence) {
        this.currentResidence = currentResidence;
    }
    public String getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(String maritalStatus) {
        this.maritalStatus = maritalStatus;
    }
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    public String getPoliticalStatus() {
        return politicalStatus;
    }

    public void setPoliticalStatus(String politicalStatus) {
        this.politicalStatus = politicalStatus;
    }
    public String getProfilePictureKey() {
        return profilePictureKey;
    }

    public void setProfilePictureKey(String profilePictureKey) {
        this.profilePictureKey = profilePictureKey;
    }
    public Date getJoinLeagueDate() {
        return joinLeagueDate;
    }

    public void setJoinLeagueDate(Date joinLeagueDate) {
        this.joinLeagueDate = joinLeagueDate;
    }
    public Date getJoinPartyDate() {
        return joinPartyDate;
    }

    public void setJoinPartyDate(Date joinPartyDate) {
        this.joinPartyDate = joinPartyDate;
    }
    public String getHighestEducation() {
        return highestEducation;
    }

    public void setHighestEducation(String highestEducation) {
        this.highestEducation = highestEducation;
    }
    public String getHighestDegree() {
        return highestDegree;
    }

    public void setHighestDegree(String highestDegree) {
        this.highestDegree = highestDegree;
    }
    public Date getStartWorkDate() {
        return startWorkDate;
    }

    public void setStartWorkDate(Date startWorkDate) {
        this.startWorkDate = startWorkDate;
    }
    public String getEmergencyContact() {
        return emergencyContact;
    }

    public void setEmergencyContact(String emergencyContact) {
        this.emergencyContact = emergencyContact;
    }
    public String getEmergencyContactPhone() {
        return emergencyContactPhone;
    }

    public void setEmergencyContactPhone(String emergencyContactPhone) {
        this.emergencyContactPhone = emergencyContactPhone;
    }
    public String getOtherContact() {
        return otherContact;
    }

    public void setOtherContact(String otherContact) {
        this.otherContact = otherContact;
    }
    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }
    public String getDepartmentKey() {
        return departmentKey;
    }

    public void setDepartmentKey(String departmentKey) {
        this.departmentKey = departmentKey;
    }
    public String getPositionKey() {
        return positionKey;
    }

    public void setPositionKey(String positionKey) {
        this.positionKey = positionKey;
    }
    public String getOfficeLocation() {
        return officeLocation;
    }

    public void setOfficeLocation(String officeLocation) {
        this.officeLocation = officeLocation;
    }
    public String getOfficePhone() {
        return officePhone;
    }

    public void setOfficePhone(String officePhone) {
        this.officePhone = officePhone;
    }
    public String getEmployeeStatus() {
        return employeeStatus;
    }

    public void setEmployeeStatus(String employeeStatus) {
        this.employeeStatus = employeeStatus;
    }
    public String getJobNature() {
        return jobNature;
    }

    public void setJobNature(String jobNature) {
        this.jobNature = jobNature;
    }
    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }
    public Date getPlanEntryDate() {
        return planEntryDate;
    }

    public void setPlanEntryDate(Date planEntryDate) {
        this.planEntryDate = planEntryDate;
    }
    public String getEntryChannel() {
        return entryChannel;
    }

    public void setEntryChannel(String entryChannel) {
        this.entryChannel = entryChannel;
    }

    public String getEntryChannelRecommendedBy() {
        return entryChannelRecommendedBy;
    }

    public void setEntryChannelRecommendedBy(String entryChannelRecommendedBy) {
        this.entryChannelRecommendedBy = entryChannelRecommendedBy;
    }

    public Integer getProbationPeriod() {
        return probationPeriod;
    }

    public void setProbationPeriod(Integer probationPeriod) {
        this.probationPeriod = probationPeriod;
    }
    public Date getRegularizationDate() {
        return regularizationDate;
    }

    public void setRegularizationDate(Date regularizationDate) {
        this.regularizationDate = regularizationDate;
    }
    public String getAttachmentKey() {
        return attachmentKey;
    }

    public void setAttachmentKey(String attachmentKey) {
        this.attachmentKey = attachmentKey;
    }
    public Date getResignationApplicationDate() {
        return resignationApplicationDate;
    }

    public void setResignationApplicationDate(Date resignationApplicationDate) {
        this.resignationApplicationDate = resignationApplicationDate;
    }
    public Date getResignationActualDate() {
        return resignationActualDate;
    }

    public void setResignationActualDate(Date resignationActualDate) {
        this.resignationActualDate = resignationActualDate;
    }
    public Date getResignationSettlementDate() {
        return resignationSettlementDate;
    }

    public void setResignationSettlementDate(Date resignationSettlementDate) {
        this.resignationSettlementDate = resignationSettlementDate;
    }
    public String getResignationReason() {
        return resignationReason;
    }

    public void setResignationReason(String resignationReason) {
        this.resignationReason = resignationReason;
    }
    public String getResignationDestination() {
        return resignationDestination;
    }

    public void setResignationDestination(String resignationDestination) {
        this.resignationDestination = resignationDestination;
    }
    public String getResignationRemark() {
        return resignationRemark;
    }

    public void setResignationRemark(String resignationRemark) {
        this.resignationRemark = resignationRemark;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
    public String getCreateUserKey() {
        return createUserKey;
    }

    public void setCreateUserKey(String createUserKey) {
        this.createUserKey = createUserKey;
    }
    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getUpdateUserKey() {
        return updateUserKey;
    }

    public void setUpdateUserKey(String updateUserKey) {
        this.updateUserKey = updateUserKey;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }

    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "TblEmployee{" +
            "id=" + id +
            ", primaryKey=" + primaryKey +
            ", uuid=" + uuid +
            ", oldUuid=" + oldUuid +
            ", corpKey=" + corpKey +
            ", employeeCode=" + employeeCode +
            ", name=" + name +
            ", formerName=" + formerName +
            ", idCard=" + idCard +
            ", sex=" + sex +
            ", birthday=" + birthday +
            ", zodiac=" + zodiac +
            ", constellation=" + constellation +
            ", nationality=" + nationality +
            ", nativePlace=" + nativePlace +
            ", nickName=" + nickName +
            ", province=" + province +
            ", city=" + city +
            ", area=" + area +
            ", currentResidence=" + currentResidence +
            ", maritalStatus=" + maritalStatus +
            ", phone=" + phone +
            ", email=" + email +
            ", politicalStatus=" + politicalStatus +
            ", profilePictureKey=" + profilePictureKey +
            ", joinLeagueDate=" + joinLeagueDate +
            ", joinPartyDate=" + joinPartyDate +
            ", highestEducation=" + highestEducation +
            ", highestDegree=" + highestDegree +
            ", startWorkDate=" + startWorkDate +
            ", emergencyContact=" + emergencyContact +
            ", emergencyContactPhone=" + emergencyContactPhone +
            ", otherContact=" + otherContact +
            ", account=" + account +
            ", departmentKey=" + departmentKey +
            ", positionKey=" + positionKey +
            ", officeLocation=" + officeLocation +
            ", officePhone=" + officePhone +
            ", employeeStatus=" + employeeStatus +
            ", jobNature=" + jobNature +
            ", entryDate=" + entryDate +
            ", planEntryDate=" + planEntryDate +
            ", entryChannel=" + entryChannel +
            ", probationPeriod=" + probationPeriod +
            ", regularizationDate=" + regularizationDate +
            ", attachmentKey=" + attachmentKey +
            ", resignationApplicationDate=" + resignationApplicationDate +
            ", resignationActualDate=" + resignationActualDate +
            ", resignationSettlementDate=" + resignationSettlementDate +
            ", resignationReason=" + resignationReason +
            ", resignationDestination=" + resignationDestination +
            ", resignationRemark=" + resignationRemark +
            ", remark=" + remark +
            ", isDeleted=" + isDeleted +
            ", createUserKey=" + createUserKey +
            ", createUserName=" + createUserName +
            ", createTime=" + createTime +
            ", updateUserKey=" + updateUserKey +
            ", updateUserName=" + updateUserName +
            ", updateTime=" + updateTime +
        "}";
    }
}
